/**
 * 
 */
package com.snsoft.service.manage;

import java.sql.SQLException;

import com.snsoft.bean.User;
import com.snsoft.dao.ManageDao;
import com.snsoft.dao.UserDao;
import com.snsoft.exception.PromiseRefused;
import com.snsoft.exception.RepetOperate;
import com.snsoft.exception.UserExist;

/**
 * @author 苏国启
 * 
 * @date 2017年11月20日 下午6:19:02
 * 
 * @Description TODO 设置下载权限业务逻辑
 * 
 */
public class SetDownloadService {

	/**
	 * 设置下载权限，目标用户不能为管理员，目标用户须存在
	 * 
	 * @param userID
	 * @param download
	 * @throws SQLException
	 * @throws NumberFormatException
	 * @throws UserExist
	 * @throws PromiseRefused
	 * @throws RepetOperate
	 */
	public void setDownload(String userID, String download)
			throws NumberFormatException, SQLException, UserExist, PromiseRefused, RepetOperate {
		User user = new UserDao().getUser(Integer.parseInt(userID));
		if (user == null) {
			throw new UserExist("目标用户不存在！");
		}
		if (user.getRole() == 1) {
			throw new PromiseRefused("无法为管理员设置下载权限！");
		}
		if (download.equals(user.getDownLoad() + "")) {
			throw new RepetOperate("用户权限已设置为" + (download.equals("1") ? "可下载" : "无法下载") + "，无需重复设置！");
		}
		new ManageDao().setDownload(userID, download);
	}

}
